﻿<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >

<head>
    <title>Berico.LinkAnalysis.Application</title>
    <style type="text/css">
    html, body {
	    height: 100%;
	    overflow: auto;
    }
    body {
	    padding: 0;
	    margin: 0;
    }
    #silverlightControlHost {
	    height: 100%;
	    text-align:center;
    }
    </style>
    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <script type="text/javascript" src="scripts/Silverlight.js"></script>
    <script type="text/javascript">

        var snagl = null;                           // Represents the scriptable object within Snagl
        var preload = true;                         // Indicates whether sample data should be preloaded
        var sampleDataFile = "3wheel_sample.xml";   // Indicates the name of the file containg the sample data to be preloaded

        // This event is fired after the Silverlight plugin (Snagl)
        // is fully loaded.  The "sender" is a reference to the actual
        // plugin so we save it into a variable for safe keeping.  All
        // initiall calls to Snagl should be place within this function.
        function onSnaglRootLoaded(sender, args) {
            // Get the instance of the scriptable object
            // within the SnagL application that is used
            // to interact with SnagL
            snagl = sender.getHost().Content.SNAGL;

            // Wire up any events
            var snaglLoadedToken = snagl.addEventListener("SnaglLoaded", onSnaglLoaded);
            //var nodeDblClickedToken = snagl.addEventListener("NodeDoubleClicked", onNodeDoubleClicked);
        }

        //
        function onSnaglLoaded(sender, args) {
        
            // Preload data into SnagL, if configured to do so
            if (preload)
                preLoadGraphdata(preLoadCompleteCallback, sampleDataFile);

        }

        function onNodeDoubleClicked(sender, args) {
            alert("Node " + args.Id + " was double clicked!");
        }

        // This function loads the provided text file (as text) from the
        // server and returns its contents to the method that called 
        function preLoadGraphdata(callback, dataFile) {

            // This call uses an AJAX call, back to the server, in order
            // to synchronously get the desired file.  The contents of
            // the file, once retrieved, is passed to the specified
            // callback function.
            $.ajax({
                type: "GET",
                url: dataFile,
                dataType: $.browser.msie ? "text" : "html",
                async: false,
                success: callback
            });

        }

        //
        function preLoadCompleteCallback(data) {

            // This call loads the provided data into the graph.  The 
            // 'LoadGraphML' method is capable of parsing
            // GaphML data.
            snagl.LoadGraphML(data);

        }

        function onSilverlightError(sender, args) {
            var appSource = "";
            if (sender != null && sender != 0) {
              appSource = sender.getHost().Source;
            }
            
            var errorType = args.ErrorType;
            var iErrorCode = args.ErrorCode;

            if (errorType == "ImageError" || errorType == "MediaError") {
              return;
            }

            var errMsg = "Unhandled Error in Silverlight Application " +  appSource + "\n" ;

            errMsg += "Code: "+ iErrorCode + "    \n";
            errMsg += "Category: " + errorType + "       \n";
            errMsg += "Message: " + args.ErrorMessage + "     \n";

            if (errorType == "ParserError") {
                errMsg += "File: " + args.xamlFile + "     \n";
                errMsg += "Line: " + args.lineNumber + "     \n";
                errMsg += "Position: " + args.charPosition + "     \n";
            }
            else if (errorType == "RuntimeError") {           
                if (args.lineNumber != 0) {
                    errMsg += "Line: " + args.lineNumber + "     \n";
                    errMsg += "Position: " +  args.charPosition + "     \n";
                }
                errMsg += "MethodName: " + args.methodName + "     \n";
            }

            throw new Error(errMsg);
        }

    </script>
</head>
<body>
    <form id="snagLHostForm" runat="server" style="height:100%">
    <div id="silverlightControlHost">
        <object id="snagl_silverlight" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
		  <param name="source" value="ClientBin/Berico.SnagL.xap"/>
		  <param name="onError" value="onSilverlightError" />
		  <param name="background" value="white" />
		  <param name="minRuntimeVersion" value="4.0.50826.0" />
		  <param name="autoUpgrade" value="true" />
          <param name="onLoad" value="onSnaglRootLoaded" />
          <!--<param name="initParams" value="loggerLevel=DEBUG,theme=Resources/default.xaml,loggerProvider=Logger.Provider.IsolatedStorage,preferencesProvider=Preference.Provider.IsolatedStorage,extensionsPath=SnagLExtenstionTutorial.xap;AnotherSnagLExtenstionTutorial.xap" />-->
          <param name="initParams" value="loggerLevel=DEBUG,theme=Resources/default.xaml,loggerProvider=Logger.Provider.IsolatedStorage,preferencesProvider=Preference.Provider.IsolatedStorage,extensionsPath=SnagLExtenstionTutorial.xap;AnotherSnagLExtenstionTutorial.xap,graphLabel={'Background':'#006400';'Foreground':'#FFFFFF';'Text':'UNCLASSIFIED'},applicationMode=Release,isToolbarHidden=true,isToolPanelHidden=true" />
		  <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none">
 			  <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
		  </a>
	    </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>
    </form>
</body>
</html>
